//
//  GAKKIStorageModel.m
//  GANGAIKit
//
//  Created by fh on 2019/11/18.
//  Copyright © 2019 cashchina. All rights reserved.
//

#import "GAKKIStorageModel.h"
#import <YYModel/YYModel.h>
NSString *const GAKKIStorageModelDataKey = @"GAKKIStorageModelDataKey";

@interface GAKKIStorageModel ()

@end

@implementation GAKKIStorageModel
+ (instancetype)shareStorageModel {
    static GAKKIStorageModel *model = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        model = [[GAKKIStorageModel alloc] init];
        [model fetchData];
    });
    return model;
}

- (void)fetchData {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSDictionary *dic = [defaults objectForKey:GAKKIStorageModelDataKey];
    if (dic) {
       [self yy_modelSetWithDictionary:dic];
    }
}

- (void)synchronize {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableDictionary *storageDic = [self yy_modelToJSONObject];
    [defaults setObject:storageDic forKey:GAKKIStorageModelDataKey];
    [defaults synchronize];
}

+ (void)syncConfigDataUseBlock:(void (^)(GAKKIStorageModel * _Nonnull))configBlock {
    [[GAKKIStorageModel shareStorageModel] fetchData];
    if (configBlock) {
        configBlock([GAKKIStorageModel shareStorageModel]);
    }
    [[GAKKIStorageModel shareStorageModel] synchronize];
}

- (void)cleanLoginInfo {
   // 清空属性
}

@end
